Clojure এর সিনট্যাক্সের মৌলিক ধারণা

Computer Programming - ক্লোজার (Clojure) Clojure সিনট্যাক্স এবং বেসিক কনসেপ্ট (Clojure Syntax and Basic Concepts) |
215
215

Clojure এর সিনট্যাক্সের মৌলিক ধারণা

Clojure, একটি লিস্প-ভিত্তিক ভাষা হিসেবে, এক্সপ্রেশন-ভিত্তিক প্রোগ্রামিংয়ের উপর ভিত্তি করে তৈরি হয়েছে। এর প্রতিটি স্টেটমেন্ট বা এক্সপ্রেশন একটি নির্দিষ্ট আউটপুট প্রদান করে। Clojure এর কোড ব্র্যাকেটের মধ্যে লেখা হয়, যা কোডকে পড়তে এবং ব্যাখ্যা করতে সহজ করে তোলে। Clojure এর মৌলিক সিনট্যাক্স বোঝার জন্য নিচের বিষয়গুলো গুরুত্বপূর্ণ।


১. S-Expressions (Symbolic Expressions)

Clojure এর প্রতিটি কোড স্টেটমেন্টকে S-Expression আকারে লেখা হয়। এর প্রতিটি এক্সপ্রেশন () প্যারেনথেসিসের মধ্যে থাকে এবং প্রথম অংশটি ফাংশন বা অপারেটরকে নির্দেশ করে। উদাহরণস্বরূপ:

(+ 1 2 3) ; আউটপুট: 6

এখানে + অপারেটর এবং 1 2 3 অপারেটরের আর্গুমেন্ট হিসেবে ব্যবহার করা হয়েছে।


২. ভেরিয়েবল ডিফাইন করা

Clojure-এ ভেরিয়েবল ডিফাইন করতে def কীওয়ার্ড ব্যবহার করা হয়। Clojure-এ ডিফাইন করা ভেরিয়েবলগুলো ইমিউটেবল, অর্থাৎ একবার সেট করা হলে তা পরিবর্তন করা যায় না।

(def x 10)
(def y 20)

(+ x y) ; আউটপুট: 30

এখানে x এবং y নামক দুটি ভেরিয়েবল ডিফাইন করা হয়েছে এবং তাদের যোগফল হিসেবে 30 পাওয়া যাচ্ছে।


৩. ফাংশন ডিফাইন করা

Clojure-এ ফাংশন ডিফাইন করতে defn কীওয়ার্ড ব্যবহার করা হয়। defn দিয়ে ফাংশনের নাম এবং প্যারামিটার নির্ধারণ করা যায়।

(defn যোগফল [a b]
  (+ a b))

(যোগফল ৫ ১৫) ; আউটপুট: 20

এখানে যোগফল নামক একটি ফাংশন তৈরি করা হয়েছে যা দুইটি সংখ্যা যোগ করে।


৪. কন্ডিশনাল স্টেটমেন্ট

Clojure-এ কন্ডিশনাল লজিকের জন্য if এবং cond ব্যবহার করা হয়। if একটি এক্সপ্রেশনকে চেক করে এবং কন্ডিশন সত্য হলে প্রথম অংশটি এবং মিথ্যা হলে দ্বিতীয় অংশটি রিটার্ন করে।

(defn check-positive [x]
  (if (> x 0)
    "Positive"
    "Non-positive"))

(check-positive 10) ; আউটপুট: "Positive"
(check-positive -5) ; আউটপুট: "Non-positive"

এখানে check-positive নামক একটি ফাংশন তৈরি করা হয়েছে, যা সংখ্যা পজিটিভ কিনা তা চেক করে।


৫. ডেটা স্ট্রাকচার

Clojure-এ কয়েকটি মৌলিক ডেটা স্ট্রাকচার রয়েছে, যেমন:

  • ভেক্টর (Vector): অর্ডারড তালিকা সংরক্ষণ করতে [] ব্যবহার করা হয়।
  • লিস্ট (List): লিস্পের স্টাইলের তালিকা, যা () এর মধ্যে থাকে।
  • ম্যাপ (Map): কী-ভ্যালু জোড়া সংরক্ষণ করতে {} ব্যবহার করা হয়।
  • সেট (Set): অনন্য মান সংরক্ষণের জন্য # চিহ্ন ব্যবহার করা হয়।
(def my-vector [1 2 3])
(def my-list '(1 2 3))
(def my-map {:name "Alice" :age 30})
(def my-set #{1 2 3})

৬. লুপ এবং পুনরাবৃত্তি

Clojure-এ পুনরাবৃত্তির জন্য loop এবং recur ব্যবহৃত হয়। এটি সাধারণত লুপিং এবং পুনরাবৃত্তি করার জন্য উপযোগী।

(defn sum-numbers [n]
  (loop [i 1 sum 0]
    (if (> i n)
      sum
      (recur (inc i) (+ sum i)))))

(sum-numbers 5) ; আউটপুট: 15

এখানে sum-numbers ফাংশনটি ১ থেকে n পর্যন্ত সংখ্যার যোগফল বের করে।


৭. ল্যাম্বডা এক্সপ্রেশন

Clojure-এ ল্যাম্বডা এক্সপ্রেশন বা অজানা ফাংশন তৈরির জন্য fn ব্যবহার করা হয়।

((fn [x] (* x x)) 5) ; আউটপুট: 25

এখানে অস্থায়ীভাবে একটি অজানা ফাংশন তৈরি করা হয়েছে, যা সংখ্যার বর্গফল প্রদান করে।


৮. ম্যাপ, ফিল্টার এবং রিডিউস

Clojure-এ ফাংশনাল প্রোগ্রামিং ধারণা হিসেবে map, filter, এবং reduce ফাংশন ব্যবহার করা হয়।

(map inc [1 2 3]) ; আউটপুট: (2 3 4)
(filter odd? [1 2 3 4]) ; আউটপুট: (1 3)
(reduce + [1 2 3 4]) ; আউটপুট: 10

এগুলো তালিকা বা ভেক্টরের উপাদানগুলোর উপর বিভিন্ন ধরনের অপারেশন সম্পাদন করে।


সারসংক্ষেপ

Clojure এর মৌলিক সিনট্যাক্সে S-Expressions, ইমিউটেবল ভেরিয়েবল, ফাংশন ডিফাইনেশন, কন্ডিশনাল স্টেটমেন্ট, ডেটা স্ট্রাকচার, লুপ এবং পুনরাবৃত্তি, ল্যাম্বডা এক্সপ্রেশন, এবং ম্যাপ, ফিল্টার, রিডিউস ফাংশন অন্তর্ভুক্ত রয়েছে। Clojure এর সিনট্যাক্স তার সরলতা এবং সংক্ষিপ্ততার জন্য খুবই কার্যকর এবং প্রোগ্রামারদের একটি ফাংশনাল প্রোগ্রামিং পরিবেশ প্রদান করে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion